The present invention relates to computer networks in general, and more particularly to methods and apparatus for optimizing Simple Network Management Protocol (SNMP) request.
With the proliferation of local are networks (LANs), the need has developed for more powerful tools to manage LANs as they increase in complexity and size. One facility available for managing large networks is the Simple Network Management Protocol (SNMP). SNMP includes two main elements: managers and agents. The SNMP manager is the interface through which the network administrator performs network management functions. SNMP agents mediate between the network devices being managed, such as routers and switches, and the SNMP manager. Each agent maintains a management information base (MIB) that includes information regarding the network device. SNMP provides for a manager to receive MIB information from agents upon request by the manager or at the initiative of the agent, as the result of an SNMP trap, for example.
Often, an SNMP manager will periodically poll an agent in order to detect changes in the MIB information for a particular network device. This is currently accomplished by the SNMP manager creating a request message for specific MIB information each time it polls the agent and then sending the request to the agent. In response, the agent formats a response message that includes the requested MIB information and sends the response to the manager. The manager then deconstructs the response message to derive the MIB information and compares the information to previously acquired information or baseline information in order to detect any differences. However, where MIB information does not generally change from one polling to the next, such comparisons are relatively inefficient.
The present invention seeks to provide novel methods and apparatus for optimizing Simple Network Management Protocol (SNMP) requests that provide a greater efficiency than is currently known in the art. A system is provided where a MIB information request is created once and sent multiple times to a switch. The switch response and baseline comparison information are related to as byte strings and compared as such. There is no need to derive the MIB information from the switch response for comparison with MIB information unless and until a byte-level difference is detected, thus conserving the processing resources otherwise needed for a comparison of MIB information.
There is thus provided in accordance with a preferred embodiment of the present invention a method for detecting a change in MIB information, the method including the steps of a) creating a MIB information request, b) sending the request to an SNMP agent, c) receiving a first response to the request from the SNMP agent, the first response includes MIB information encoded as a byte array, and d) comparing the first response byte array to a comparison byte array to determine a difference therebetween, thereby detecting.
Further in accordance with a preferred embodiment of the present invention the method further includes repeating steps b)-d) using the MIB information request created in step a).
Still further in accordance with a preferred embodiment of the present invention the method further includes using the first response byte array as the comparison byte array for a second response byte array received from the SNMP agent subsequent to the receipt of the first response.
There is also provided in accordance with a preferred embodiment of the present invention a system for detecting a change in MIB information including means for creating a MIB information request, means for sending the request to an SNMP agent, means for receiving a first response to the request from the SNMP agent, the first response includes MIB information encoded as a byte array, and means for comparing the first response byte array to a comparison byte array to determine a difference therebetween, thereby detecting.
Further in accordance with a preferred embodiment of the present invention the means for comparing uses the first response byte array as the comparison byte array for a second response byte array received from the SNMP agent subsequent to the receipt of the first response.